package tabela;

import javax.swing.table.AbstractTableModel;

/**
 *
 * @author pc
 */
public class TabelaModelo extends AbstractTableModel{
    private String colunas[]; 
    private String dados[][];
    
    
    public TabelaModelo(String mat[][], String cabecalho[][]){
        colunas = new String[mat[0].length+1];
        setColunas(cabecalho);
        dados = new String [mat.length][mat[0].length+1];
        setDados(mat);
        fireTableStructureChanged();
    }

    @Override
    public int getRowCount() {
        return dados.length;    
    }

    @Override
    public int getColumnCount() {
        return colunas.length; //retorna a qtde de elementos do array colunas
    }

     
    @Override
    public String getColumnName( int pos){
        return colunas[pos];
    }
   
   public void excluiLinhasTabela(){
       int i = dados.length;
       dados = new String[0][0];
       fireTableRowsDeleted(0, i - 1);   
    }   
   
    private void setColunas(String mat[][]){
        colunas[0] = "";
        
        for (int i = 0; i < colunas.length; i++) {
            colunas[i] = mat[0][i];
        }
               
    }
   
   private void setDados (String mat[][]) { 
       int k;
       for (int i=0; i<dados.length; i++){
           k=0;//dados colunas
           for (int j=0; j < dados[0].length; j++){
               if (j==0){
                   dados[i][j]=String.valueOf(i);
               }else{
                   dados[i][j]=mat[i][k];
                   k++;
               }
           }
       }
       fireTableStructureChanged(); 
     
  }

    @Override
    public Object getValueAt(int rowIndex, int columnIndex) {
        return dados[rowIndex][columnIndex];
    }
    
}
